import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
 
 
class TabWidget(QTabWidget): #直接一整个屏幕就是一个选项卡窗口
    def __init__(self,parent=None):
        super(TabWidget, self).__init__(parent)
        self.setWindowTitle('选项卡控件:QTabWidget')
        self.resize(400,200)
        #创建用于显示控件的窗口
        self.tab1=QWidget()
        self.tab2 = QWidget()
        self.tab3 = QWidget()
        #将窗口和选项卡绑定
        self.addTab(self.tab1,'选项卡1')
        self.addTab(self.tab2, '选项卡2')
        self.addTab(self.tab3, '选项卡3')
 
        self.tab1UI()
        self.tab2UI()
        self.tab3UI()
 
    def tab1UI(self):
        #表单布局
        layout=QFormLayout()
        layout.addRow('姓名',QLineEdit())
        layout.addRow('地址',QLineEdit())
        # 将第一个选项卡窗口重命名
        self.setTabText(0,'联系方式')
        self.tab1.setLayout(layout)#别忘了tab1就是一个窗口
 
    def tab2UI(self):
        layout=QFormLayout()
        sex=QHBoxLayout()#水平布局，横向排列
        #单选框
        sex.addWidget(QRadioButton('男'))
        sex.addWidget(QRadioButton('女'))
        layout.addRow(QLabel('性别'),sex)
        layout.addRow('生日',QLineEdit())
        self.setTabText(1,'个人详细信息')
        self.tab2.setLayout(layout)
 
    def tab3UI(self):
        layout=QHBoxLayout()
        layout.addWidget(QLabel('科目'))
        #复选框
        layout.addWidget(QCheckBox('物理'))
        layout.addWidget(QCheckBox('高数'))
        self.setTabText(2,'教育程度')
        self.tab3.setLayout(layout)
 
 
if __name__=='__main__':
    app=QApplication(sys.argv)
    main=TabWidget()
    main.show()
    sys.exit(app.exec_())
 
